import request from "./request";
import store from '@/store'
// let baseUrl = "https://www.conlove.cn/api";
// let baseUrl = "http://localhost:8181/api";
// let baseUrl = "http://192.168.0.102:8181/api";
// let baseUrl = "http://192.168.0.105:8181/api";
// let baseUrl = "http://47.93.9.196:8282/api"; // 1核
let baseUrl = "https://api.conlove.online/api"; // 1核
//可以new多个request来支持多个域名请求
let $http = new request({
	//接口请求地址
	baseUrl: baseUrl,
	//服务器本地上传文件地址
	fileUrl: baseUrl,
	//设置请求头
	headers: {
		'content-type': 'application/json;charset=UTF-8'
	},
	//以下是默认值可不写
	//是否提示--默认提示
	isPrompt: true,
	//是否显示请求动画
	load: false,
	//是否使用处理数据模板
	isFactory: true,
	//列表接口是否有加载判断
	loadMore: false,
});
//当前接口请求数
let requestNum = 0;
//请求开始拦截器
$http.requestStart = function(options) {
	if (requestNum <= 0) {
		uni.showNavigationBarLoading();
		// if (options.load) {
		// 	//打开加载动画
		// 	// uni.showLoading({
		// 	// 	title: '加载中',
		// 	// 	mask: true
		// 	// });
		// }
	}
	requestNum += 1;
	
	//请求前加入token
	options.headers['token'] = uni.getStorageSync('token') ? uni.getStorageSync('token') : '';
	// console.log("请求开始前", options);
	// ;
	return options;
}
//请求结束
$http.requestEnd = function(options, resolve) {
	// 判断当前接口是否需要加载动画
	requestNum = requestNum - 1;
	if (requestNum <= 0) {
		// uni.hideLoading();
		uni.hideNavigationBarLoading();
	}
	
	let code = resolve.statusCode;
	//请求失败、未登录或登录已失效
	if (resolve.errMsg && code && code != 200 && code != 1000 && code != 1001) {
		uni.showToast({
			title: "网络错误，请检查一下网络",
			icon: "none"
		});
	}
}

//所有接口数据处理（可在接口里设置不调用此方法）
$http.dataFactory = function(options, resolve) {
	// console.log("接口返回结果", resolve);
	
	//设置回调默认值
	var callback = {
		//success数据是否请求成功状态
		success: false,
		//这里返回的数据就是调用请求方法收到的数据
		result: ""
	};
	//判断数据是否请求成功
	if (resolve.statusCode == "200" && resolve.data.status != "1000") {
		callback.success = true;
		callback.result = resolve.data;
	} else if (resolve.statusCode == "1000" || resolve.statusCode == "1001" || resolve.data.status == "1000") {
		//未登录或登录已失效
		
		store.dispatch('del')
		uni.showModal({
			title: '温馨提示',
			content: '此时此刻需要您登录喔~',
			confirmText: "去登录",
			cancelText: "再逛会",
			success: (res) => {
				if (res.confirm) {
					uni.navigateTo({
						url: '/pages/enter/login'
					});
				} else {
					uni.switchTab({
						url: '/pages/home/home'
					})
				}
			}
		});
	} else { //其他错误提示
		//设置可以提示的时候
		if (options.isPrompt) {
			//提示后台接口抛出的错误信息
			uni.showToast({
				title: '接口有错误' + resolve.data.msg,
				icon: "none",
			});
		}
		callback.result = resolve.data;
	}
	return callback;
};
$http.SUCCESS = 1
$http.ERROR = 0
export default $http;
